
/**
 * 轻提示
 * @param {String} title 提示字符串
 * @param {Object} params 参数对象 （参考uni）
 * @param {Object} params.icon 提示图标
 *      params.icon === 'success' '显示成功图标'
 *      params.icon === 'loading' '显示加载图标' (支付宝小程序不支持)
 *      params.icon === 'none' '不显示图标'
 *      params.icon === 'error' '显示失败图标'
 */
export function msg (title='', params={}) {
    if (!title) return

    // 自定义 图标
    let custom = {
        'error' () {
            params.image = '/static/images/shibai.png'
        },
    }
    custom[params.icon] && custom[params.icon]()

    // 默认设置
    let defaultParams = {
        icon: 'none',
    }

    uni.showToast({
        title,
        ...{ ...defaultParams,  ...params },
    })
}

/**
 * alert 提示框
 * @param {String} content 提示字符串 (提示内容)
 * @param {Function} fn 点击确认的回调 可选
 * @param {Object} params 参数对象 （参考uni）可选
 * @param {Function} params.confirmFn 点击确认回调(fn没传时可用) 可选
 */
export function alert (content='提示内容', fn, params={
    confirmFn(){},
}) {
    // fn回调没传 但params有传
    let start = this.$utils.isType(fn, 'Object')
    if (start) {
        params = fn
    }
    // 默认设置
    let defaultParams = {
        title: '温馨提示',
        content,
        showCancel: false,
        success () {
            start ? fn() : confirmFn()
        }
    }

    uni.showModal({ ...defaultParams, ...params })
}

/**
 *
 * @param {String} content 提示字符串 (提示内容)
 * @param {Object} params 参数对象 （参考uni）
 * @param {Function} params.confirmFn 点击确认回调
 * @param {Function} params.cancelFn 点击取消回调
 */
export function confirm (content='提示内容', params={
    confirmFn(){},
    cancelFn(){},
} ) {
    // 默认设置
    let defaultParams = {
        title: '温馨提示',
        content,
        success ({confirm, cancel}) {
            confirm && confirmFn()
            cancel && cancelFn()
        }
    }
}

/**
 * 显示加载
 */
export function loading (title='加载中...', params) {
    uni.showLoading( { title, ...params, } )
}

/**
 * 隐藏加载
 */
export function hideLoading () {
    uni.hideLoading()
}
